rgeos
パッケージのgDistance
関数を用いて、 点データ(SpatialPoints)と曲線(SpatialLines)またはポリゴン()との距離を計算する。
library(sp)
library(rgeos)
# SpatialPoints形式の座標データ例
h.center <- SpatialPoints(coords=cbind(x=0,y=0))
# SpatialPolygons形式の線分データ例
xpol = c(0,1,1,0,0)
ypol = c(0,0,1,1,0)
P <- SpatialPolygons(list(
Polygons(list(Polygon(cbind(xpol+1,ypol))), ID="P1"),
Polygons(list(Polygon(cbind(xpol-1.5,ypol-1))), ID="P2")
))
# SpatialLines形式の線分データ例
L <- SpatialLines(list(
Lines(Line(rbind(c(-1,-0.5), c(2,-0.5))), "L1")
))
# 作図
plot(P,axes=TRUE,xlim=c(-2.05,2.05),ylim=c(-1.05,1.00))
points(h.center,col="red",pch=19)
lines(L)
# 線分との距離
gDistance(h.center,L)
## [1] 0.5
# ポリゴンとの距離
gDistance(h.center,P)
## [1] 0.5